package Atop100.putongArray;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Class56 {

    public int[][] merge(int[][] intervals) {
     int[][] ans=null;
     //TODO:2023/10/23 思考如何接收结果 list接收
        //TODO:2023/10/23 然后怎么接收
     ArrayList<int[]> list = new ArrayList<>();
     int len = intervals.length;
     Arrays.sort(intervals,(x,y)->(x[0]-y[0]));
     for (int i = 0; i < len; ) {
            int l=intervals[i][0];
            int r=intervals[i][1];
            i++;
            while (i<len&&intervals[i][0]<=r){
                //TODO:2023/10/23   [[1,4],[2,3]]  这种情况没有考虑进去
//TODO:2023/10/23 r=intervals[i][1];
                r=Math.max(r,intervals[i][1]);
                i++;
            }
            int[] temp={l,r};
            list.add(temp);
        }

      ans=  list.toArray(new int[list.size()][2]);

      return  ans;


//        List<int[]>  ans= new ArrayList<>();
//        Arrays.sort(intervals,(x,y)->(x[0]-y[0]));
//        int n=intervals.length;
//        int i=0;
//        while(i<n){
//            int l=intervals[i][0];
//            int r=intervals[i][1];
//            while(i<n-1&&r>=intervals[i+1][0]){
//                r=Math.max(r,intervals[i+1][1]);
//                i=i+1;
//            }
//            int[] temp={l,r};
//            ans.add(temp);
//            i++;
//        }
//        return ans.toArray(new int[ans.size()][2]);
    }

    public static void main(String[] args) {
        Class56 class56 = new Class56();
        int[][] test={{1,3},{2,6},{8,10},{15,18}};
        int[][] merge = class56.merge(test);
        for (int [] a:merge
             ) {
            System.out.println(Arrays.toString(a));

        }

    }
}
